from rest_framework.pagination import PageNumberPagination
from rest_framework.response import Response


class MyPage(PageNumberPagination):
    page_size = 5  # 默认每页数量
    max_page_size = 5  # 默认每页最多几个
    page_query_param = 'page'  # 接受参数必须以page页码方式
    page_size_query_param = 'pagesize'  # 每一页写多少个功能

    def get_paginated_response(self, data):
        """
        构建响应对象,响应对象中构建返回数据格式
        :param data: 分页子集序列化的结果
        :return: 封装了具体数据格式响应对象
        """
        return Response({
            'counts': self.page.paginator.count,  # 总数量
            'lists': data,  # 用户数据
            'page': self.page.number,  # 当前页数
            'pages': self.page.paginator.num_pages,  # 总页数
            'pageisze': self.page_size  # 后端指定的页容量
        })
